package com.doform.android.xianggucheng.retrofit;

import com.doform.android.xianggucheng.bean.ALBBBean;
import com.doform.android.xianggucheng.bean.AddressBean;
import com.doform.android.xianggucheng.bean.ApiBean;
import com.doform.android.xianggucheng.bean.ArticleQueryBean;
import com.doform.android.xianggucheng.bean.BillBean1;
import com.doform.android.xianggucheng.bean.CategoryBean;
import com.doform.android.xianggucheng.bean.CategoryQueryBean;
import com.doform.android.xianggucheng.bean.ClientBean;
import com.doform.android.xianggucheng.bean.ClientCategoryBean;
import com.doform.android.xianggucheng.bean.ClientCategoryQueryBean;
import com.doform.android.xianggucheng.bean.ClientDetail;
import com.doform.android.xianggucheng.bean.CommonQueryBean;
import com.doform.android.xianggucheng.bean.GoodBean;
import com.doform.android.xianggucheng.bean.Goods;
import com.doform.android.xianggucheng.bean.GuidBean;
import com.doform.android.xianggucheng.bean.HangQingBean;
import com.doform.android.xianggucheng.bean.HomePager;
import com.doform.android.xianggucheng.bean.ImageBean;
import com.doform.android.xianggucheng.bean.InLibraryDetailBean;
import com.doform.android.xianggucheng.bean.InLibraryDetailBean2;
import com.doform.android.xianggucheng.bean.LibraryBean2;
import com.doform.android.xianggucheng.bean.LoginBean;
import com.doform.android.xianggucheng.bean.MoneyBean2;
import com.doform.android.xianggucheng.bean.OrderBean;
import com.doform.android.xianggucheng.bean.OrderQueryBean;
import com.doform.android.xianggucheng.bean.OrderQueryBean2;
import com.doform.android.xianggucheng.bean.QueryLibraryBean;
import com.doform.android.xianggucheng.bean.RegisterBean;
import com.doform.android.xianggucheng.bean.ReportBean;
import com.doform.android.xianggucheng.bean.ReqSHYSBean;
import com.doform.android.xianggucheng.bean.SHYSBean;
import com.doform.android.xianggucheng.bean.SalesBean;
import com.doform.android.xianggucheng.bean.ShopCarBean;
import com.doform.android.xianggucheng.bean.StarBean;
import com.doform.android.xianggucheng.bean.StarQueryBean;
import com.doform.android.xianggucheng.bean.TiXianBean2;
import com.doform.android.xianggucheng.bean.UnitBean;
import com.doform.android.xianggucheng.bean.VendorBean;
import com.doform.android.xianggucheng.bean.VendorDetailBean;
import com.doform.android.xianggucheng.bean.VersionUpdate;
import com.doform.android.xianggucheng.bean.WorkerBean;
import com.doform.android.xianggucheng.bean.YHKBean;
import com.doform.android.xianggucheng.bean.request_bean.ReEarning;
import com.doform.android.xianggucheng.bean.request_bean.ReqAddAddress;
import com.doform.android.xianggucheng.bean.request_bean.ReqAddArtcle;
import com.doform.android.xianggucheng.bean.request_bean.ReqAddCategoryBean;
import com.doform.android.xianggucheng.bean.request_bean.ReqAddClientBean;
import com.doform.android.xianggucheng.bean.request_bean.ReqAddClientCategoryBean;
import com.doform.android.xianggucheng.bean.request_bean.ReqAddInLibrary;
import com.doform.android.xianggucheng.bean.request_bean.ReqAddInlibraryDetail;
import com.doform.android.xianggucheng.bean.request_bean.ReqAddMeasureUnitBean;
import com.doform.android.xianggucheng.bean.request_bean.ReqAddShopCarBean;
import com.doform.android.xianggucheng.bean.request_bean.ReqAddStarBean;
import com.doform.android.xianggucheng.bean.request_bean.ReqAddVendorBean;
import com.doform.android.xianggucheng.bean.request_bean.ReqBank;
import com.doform.android.xianggucheng.bean.request_bean.ReqBank2;
import com.doform.android.xianggucheng.bean.request_bean.ReqBill;
import com.doform.android.xianggucheng.bean.request_bean.ReqDeleteAddress;
import com.doform.android.xianggucheng.bean.request_bean.ReqDeleteArticleBean;
import com.doform.android.xianggucheng.bean.request_bean.ReqDeleteCategoryBean;
import com.doform.android.xianggucheng.bean.request_bean.ReqDeleteClientBean;
import com.doform.android.xianggucheng.bean.request_bean.ReqDeleteClientCategoryBean;
import com.doform.android.xianggucheng.bean.request_bean.ReqDeleteInLibraryBean;
import com.doform.android.xianggucheng.bean.request_bean.ReqDeleteInLibraryDetailBean;
import com.doform.android.xianggucheng.bean.request_bean.ReqDeleteMeasureUnitBean;
import com.doform.android.xianggucheng.bean.request_bean.ReqDeleteOrder;
import com.doform.android.xianggucheng.bean.request_bean.ReqDeleteShopCarBean;
import com.doform.android.xianggucheng.bean.request_bean.ReqDeleteStarBean;
import com.doform.android.xianggucheng.bean.request_bean.ReqDeleteVendorBean;
import com.doform.android.xianggucheng.bean.request_bean.ReqErCode;
import com.doform.android.xianggucheng.bean.request_bean.ReqHang;
import com.doform.android.xianggucheng.bean.request_bean.ReqHead;
import com.doform.android.xianggucheng.bean.request_bean.ReqHome;
import com.doform.android.xianggucheng.bean.request_bean.ReqImage;
import com.doform.android.xianggucheng.bean.request_bean.ReqListAddress;
import com.doform.android.xianggucheng.bean.request_bean.ReqListArticleBean;
import com.doform.android.xianggucheng.bean.request_bean.ReqListArticleBean2;
import com.doform.android.xianggucheng.bean.request_bean.ReqListCategoryBean;
import com.doform.android.xianggucheng.bean.request_bean.ReqListClientBean;
import com.doform.android.xianggucheng.bean.request_bean.ReqListClientCategoryBean;
import com.doform.android.xianggucheng.bean.request_bean.ReqListInLibraryBean;
import com.doform.android.xianggucheng.bean.request_bean.ReqListInLibraryBean2;
import com.doform.android.xianggucheng.bean.request_bean.ReqListLibraryBean;
import com.doform.android.xianggucheng.bean.request_bean.ReqListMeasureUnitBean;
import com.doform.android.xianggucheng.bean.request_bean.ReqListOrder;
import com.doform.android.xianggucheng.bean.request_bean.ReqListShopCar;
import com.doform.android.xianggucheng.bean.request_bean.ReqListStarBean;
import com.doform.android.xianggucheng.bean.request_bean.ReqListVendorBean;
import com.doform.android.xianggucheng.bean.request_bean.ReqListWorker;
import com.doform.android.xianggucheng.bean.request_bean.ReqLoginBean;
import com.doform.android.xianggucheng.bean.request_bean.ReqMoney;
import com.doform.android.xianggucheng.bean.request_bean.ReqQueryArticle;
import com.doform.android.xianggucheng.bean.request_bean.ReqQueryArticlePrice;
import com.doform.android.xianggucheng.bean.request_bean.ReqQueryCategory;
import com.doform.android.xianggucheng.bean.request_bean.ReqQueryClient;
import com.doform.android.xianggucheng.bean.request_bean.ReqQueryClientCategory;
import com.doform.android.xianggucheng.bean.request_bean.ReqQueryLibraryBean;
import com.doform.android.xianggucheng.bean.request_bean.ReqQueryOrder;
import com.doform.android.xianggucheng.bean.request_bean.ReqQueryOrder2;
import com.doform.android.xianggucheng.bean.request_bean.ReqQueryStar;
import com.doform.android.xianggucheng.bean.request_bean.ReqQueryVendorBean;
import com.doform.android.xianggucheng.bean.request_bean.ReqQueryVendorBean2;
import com.doform.android.xianggucheng.bean.request_bean.ReqRegister;
import com.doform.android.xianggucheng.bean.request_bean.ReqRegister2;
import com.doform.android.xianggucheng.bean.request_bean.ReqRegister3;
import com.doform.android.xianggucheng.bean.request_bean.ReqReport;
import com.doform.android.xianggucheng.bean.request_bean.ReqRetrieve;
import com.doform.android.xianggucheng.bean.request_bean.ReqSale;
import com.doform.android.xianggucheng.bean.request_bean.ReqSubmitInLibrary;
import com.doform.android.xianggucheng.bean.request_bean.ReqSubmitShopCar;
import com.doform.android.xianggucheng.bean.request_bean.ReqUpdateAddress;
import com.doform.android.xianggucheng.bean.request_bean.ReqUpdateArticle;
import com.doform.android.xianggucheng.bean.request_bean.ReqUpdateCategoryBean;
import com.doform.android.xianggucheng.bean.request_bean.ReqUpdateClientBean;
import com.doform.android.xianggucheng.bean.request_bean.ReqUpdateClientCategoryBean;
import com.doform.android.xianggucheng.bean.request_bean.ReqUpdateInLibrary;
import com.doform.android.xianggucheng.bean.request_bean.ReqUpdateMeasureUnitBean;
import com.doform.android.xianggucheng.bean.request_bean.ReqUpdateOrder;
import com.doform.android.xianggucheng.bean.request_bean.ReqUpdatePassword;
import com.doform.android.xianggucheng.bean.request_bean.ReqUpdateShopCar;
import com.doform.android.xianggucheng.bean.request_bean.ReqUpdateStarBean;
import com.doform.android.xianggucheng.bean.request_bean.ReqUpdateVendor;
import com.doform.android.xianggucheng.bean.request_bean.ReqVersion;
import com.doform.android.xianggucheng.bean.request_bean.ReqYHKBean;

import java.util.ArrayList;

import io.reactivex.Observable;
import retrofit2.http.Field;
import retrofit2.http.FormUrlEncoded;
import retrofit2.http.POST;

/**
 * 作者 Y_MS  retrofit声明接口
 * Created by ${APEN} on 2017-07-19.
 * GitHub：https://github.com/cxydxpx
 */

public interface IApi {


    /**
     * 登录接口
     */
    @FormUrlEncoded
    @POST("?")
    Observable<ApiBean<LoginBean>> login2(
            @Field("reqhead") ReqHead reqHead,
            @Field("reqbody") ReqLoginBean loginBean
    );

    /**
     * 商品列表
     *
     * @param reqHead
     * @param reqListArticleBean
     * @return
     */
    @FormUrlEncoded
    @POST("?")
    Observable<ApiBean<Goods>> getArticle2(
            @Field("reqhead") ReqHead reqHead,
            @Field("reqbody") ReqListArticleBean reqListArticleBean);

    /**
     * @param reqHead
     * @param reqDeleteArticleBean @return
     */
    @FormUrlEncoded
    @POST("?")
    Observable<ApiBean<Integer>> deleteArticle(
            @Field("reqhead") ReqHead reqHead,
            @Field("reqbody") ReqDeleteArticleBean reqDeleteArticleBean);

    /**
     * 添加商品
     *
     * @param reqHead
     * @param reqAddArtcle @return
     */
    @FormUrlEncoded
    @POST("?")
    Observable<ApiBean<GuidBean>> addArtcle(
            @Field("reqhead") ReqHead reqHead,
            @Field("reqbody") ReqAddArtcle reqAddArtcle);

    /**
     * 获取商品详情
     *
     * @param reqHead
     * @param reqQueryArticle @return
     */
    @FormUrlEncoded
    @POST("?")
    Observable<ApiBean<ArrayList<GoodBean>>> getArticleDetail(
            @Field("reqhead") ReqHead reqHead,
            @Field("reqbody") ReqQueryArticle reqQueryArticle);

    /**
     * @param reqHead
     * @param reqUpdateArticle
     * @return
     */
    @FormUrlEncoded
    @POST("?")
    Observable<ApiBean<String>> updateArticle(
            @Field("reqhead") ReqHead reqHead,
            @Field("reqbody") ReqUpdateArticle reqUpdateArticle);

    /**
     * 获取计量单位数据
     *
     * @param reqHead
     * @param reqListMeasureUnitBean
     */
    @FormUrlEncoded
    @POST("?")
    Observable<ApiBean<UnitBean>> getMeasureUnitData(
            @Field("reqhead") ReqHead reqHead,
            @Field("reqbody") ReqListMeasureUnitBean reqListMeasureUnitBean);


    /**
     * 商品分类列表
     *
     * @param reqHead
     * @param reqListCategoryBean
     * @return
     */
    @FormUrlEncoded
    @POST("?")
    Observable<ApiBean<CategoryBean>> getCategory2(
            @Field("reqhead") ReqHead reqHead,
            @Field("reqbody") ReqListCategoryBean reqListCategoryBean);


    /**
     * @param reqHead
     * @param reqAddMeasureUnitBean
     * @return
     */
    @FormUrlEncoded
    @POST("?")
    Observable<ApiBean<GuidBean>> addMeasureUnit(
            @Field("reqhead") ReqHead reqHead,
            @Field("reqbody") ReqAddMeasureUnitBean reqAddMeasureUnitBean);

    /**
     * 修改计量单位
     *
     * @param reqHead
     * @param reqUpdateMeasureUnitBean
     * @return
     */
    @FormUrlEncoded
    @POST("?")
    Observable<ApiBean<Integer>> updateMeasureUnit(
            @Field("reqhead") ReqHead reqHead,
            @Field("reqbody") ReqUpdateMeasureUnitBean reqUpdateMeasureUnitBean);

    /**
     * 删除计量单位
     *
     * @param reqHead
     * @param reqDeleteMeasureUnitBean
     * @return
     */
    @FormUrlEncoded
    @POST("?")
    Observable<ApiBean<Integer>> deleteMesureUnit(
            @Field("reqhead") ReqHead reqHead,
            @Field("reqbody") ReqDeleteMeasureUnitBean reqDeleteMeasureUnitBean);

    /**
     * 获取星级数据
     *
     * @param reqHead
     * @param reqListStarBean
     * @return
     */
    @FormUrlEncoded
    @POST("?")
    Observable<ApiBean<StarBean>> getStar(
            @Field("reqhead") ReqHead reqHead,
            @Field("reqbody") ReqListStarBean reqListStarBean);

    /**
     * 删除星级
     *
     * @param reqHead
     * @param id
     * @return
     */
    @FormUrlEncoded
    @POST("?")
    Observable<ApiBean<Integer>> deleteStar(
            @Field("reqhead") ReqHead reqHead,
            @Field("reqbody") ReqDeleteStarBean id);

    /**
     * 添加星级
     *
     * @param reqHead
     * @param reqAddStarBean
     * @return
     */
    @FormUrlEncoded
    @POST("?")
    Observable<ApiBean<GuidBean>> addStar(
            @Field("reqhead") ReqHead reqHead,
            @Field("reqbody") ReqAddStarBean reqAddStarBean);

    /**
     * 修改星级
     *
     * @param reqHead
     * @param reqUpdateStarBean @return
     */
    @FormUrlEncoded
    @POST("?")
    Observable<ApiBean<Integer>> updateStar(
            @Field("reqhead") ReqHead reqHead,
            @Field("reqbody") ReqUpdateStarBean reqUpdateStarBean);

    /**
     * 获取首页数据
     *
     * @param reqHead
     * @param reqHome
     * @return
     */
    @FormUrlEncoded
    @POST("?")
    Observable<ApiBean<HomePager>> getHomePagerData(
            @Field("reqhead") ReqHead reqHead,
            @Field("reqbody") ReqHome reqHome);

    /**
     * 获取客户分类数据
     *
     * @param reqHead
     * @param reqListClientCategoryBean
     * @return
     */
    @FormUrlEncoded
    @POST("?")
    Observable<ApiBean<ClientCategoryBean>> getClientCategory2(
            @Field("reqhead") ReqHead reqHead,
            @Field("reqbody") ReqListClientCategoryBean reqListClientCategoryBean);

    /**
     * 删除客户分类
     *
     * @param reqHead
     * @param reqDeleteClientCategoryBean @return
     */
    @FormUrlEncoded
    @POST("?")
    Observable<ApiBean<Integer>> deleteClientCategory2(
            @Field("reqhead") ReqHead reqHead,
            @Field("reqbody") ReqDeleteClientCategoryBean reqDeleteClientCategoryBean);


    /**
     * 添加客户分类
     *
     * @param reqHead
     * @param reqAddClientCategoryBean
     */
    @FormUrlEncoded
    @POST("?")
    Observable<ApiBean<GuidBean>> addClientCategory(
            @Field("reqhead") ReqHead reqHead,
            @Field("reqbody") ReqAddClientCategoryBean reqAddClientCategoryBean);

    /**
     * 修改客户分类
     *
     * @param reqHead
     * @param reqUpdateClientCategoryBean
     * @return
     */
    @FormUrlEncoded
    @POST("?")
    Observable<ApiBean<String>> updateClientCategory(
            @Field("reqhead") ReqHead reqHead,
            @Field("reqbody") ReqUpdateClientCategoryBean reqUpdateClientCategoryBean);

    /**
     * 获取用户数据
     *
     * @param reqHead
     * @param reqListClientBean @return
     */
    @FormUrlEncoded
    @POST("?")
    Observable<ApiBean<ClientBean>> getClient(
            @Field("reqhead") ReqHead reqHead,
            @Field("reqbody") ReqListClientBean reqListClientBean);

    /**
     * 删除客户
     *
     * @param reqHead
     * @param reqDeleteClientBean @return
     */
    @FormUrlEncoded
    @POST("?")
    Observable<ApiBean<Integer>> deleteClient(
            @Field("reqhead") ReqHead reqHead,
            @Field("reqbody") ReqDeleteClientBean reqDeleteClientBean);

    /**
     * 添加客户
     *
     * @param reqHead
     * @param reqAddClientBean
     * @return
     */
    @FormUrlEncoded
    @POST("?")
    Observable<ApiBean<GuidBean>> addClient2(
            @Field("reqhead") ReqHead reqHead,
            @Field("reqbody") ReqAddClientBean reqAddClientBean);

    /**
     * 修改客户
     *
     * @param reqHead
     * @param reqUpdateClientBean @return
     */
    @FormUrlEncoded
    @POST("?")
    Observable<ApiBean<String>> updateClient(
            @Field("reqhead") ReqHead reqHead,
            @Field("reqbody") ReqUpdateClientBean reqUpdateClientBean);

    /**
     * 获取客户详情
     *
     * @param reqHead
     * @param reqQueryClient
     * @return
     */
    @FormUrlEncoded
    @POST("?")
    Observable<ApiBean<ArrayList<ClientDetail>>> getClientDetail(
            @Field("reqhead") ReqHead reqHead,
            @Field("reqbody") ReqQueryClient reqQueryClient);

    /**
     * 获取供应商数据
     *
     * @param reqHead
     * @param reqListVendorBean @return
     */
    @FormUrlEncoded
    @POST("?")
    Observable<ApiBean<VendorBean>> getVendor2(
            @Field("reqhead") ReqHead reqHead,
            @Field("reqbody") ReqListVendorBean reqListVendorBean);

    /**
     * 删除供应商
     *
     * @param reqHead
     * @param reqDeleteVendorBean
     */
    @FormUrlEncoded
    @POST("?")
    Observable<ApiBean<Integer>> deleteVendor2(
            @Field("reqhead") ReqHead reqHead,
            @Field("reqbody") ReqDeleteVendorBean reqDeleteVendorBean);

    /**
     * 添加供应商
     *
     * @param reqHead
     * @param reqAddVendorBean @return
     */
    @FormUrlEncoded
    @POST("?")
    Observable<ApiBean<GuidBean>> addVendor2(
            @Field("reqhead") ReqHead reqHead,
            @Field("reqbody") ReqAddVendorBean reqAddVendorBean);

    /**
     * 获取供应商详情
     *
     * @param reqHead
     * @param reqQueryVendorBean
     */
    @FormUrlEncoded
    @POST("?")
    Observable<ApiBean<ArrayList<VendorDetailBean>>> getVendorDetail(
            @Field("reqhead") ReqHead reqHead,
            @Field("reqbody") ReqQueryVendorBean reqQueryVendorBean);


    /**
     * 修改供应商
     *
     * @param reqHead
     * @param reqUpdateVendor
     * @return
     */
    @FormUrlEncoded
    @POST("?")
    Observable<ApiBean<String>> updateVendor(
            @Field("reqhead") ReqHead reqHead,
            @Field("reqbody") ReqUpdateVendor reqUpdateVendor);

    /**
     * 修改分类
     *
     * @param reqHead
     * @param reqUpdateCategoryBean
     * @return
     */
    @FormUrlEncoded
    @POST("?")
    Observable<ApiBean<String>> updateCategory2(
            @Field("reqhead") ReqHead reqHead,
            @Field("reqbody") ReqUpdateCategoryBean reqUpdateCategoryBean);

    /**
     * 添加分类
     *
     * @param reqHead
     * @param reqAddCategoryBean @return
     */
    @FormUrlEncoded
    @POST("?")
    Observable<ApiBean<GuidBean>> addCategory2(
            @Field("reqhead") ReqHead reqHead,
            @Field("reqbody") ReqAddCategoryBean reqAddCategoryBean);

    /**
     * 删除分类
     *
     * @param reqHead
     * @param reqDeleteCategoryBean
     * @return
     */
    @FormUrlEncoded
    @POST("?")
    Observable<ApiBean<Integer>> deleteCategory2(
            @Field("reqhead") ReqHead reqHead,
            @Field("reqbody") ReqDeleteCategoryBean reqDeleteCategoryBean);

    /**
     * 获取仓库详情
     *
     * @param reqHead
     * @param reqListLibraryBean
     */
    @FormUrlEncoded
    @POST("?")
    Observable<ApiBean<ArrayList<QueryLibraryBean>>> getLibraryQuery(
            @Field("reqhead") ReqHead reqHead,
            @Field("reqbody") ReqListLibraryBean reqListLibraryBean);

    /**
     * 添加采购单
     *
     * @param reqHead
     * @param reqAddInLibrary
     * @return
     */
    @FormUrlEncoded
    @POST("?")
    Observable<ApiBean<GuidBean>> addInLibrary(
            @Field("reqhead") ReqHead reqHead,
            @Field("reqbody") ReqAddInLibrary reqAddInLibrary);

    /**
     * 添加采购单明细
     *
     * @param reqHead
     * @param reqAddInlibraryDetail
     * @return
     */
    @FormUrlEncoded
    @POST("?")
    Observable<ApiBean<GuidBean>> addLibraryDetail(
            @Field("reqhead") ReqHead reqHead,
            @Field("reqbody") ReqAddInlibraryDetail reqAddInlibraryDetail);

    /**
     * 提交采购单
     *
     * @param reqHead
     * @param reqSubmitInLibrary
     */
    @FormUrlEncoded
    @POST("?")
    Observable<ApiBean<Integer>> submitInLibrary(
            @Field("reqhead") ReqHead reqHead,
            @Field("reqbody") ReqSubmitInLibrary reqSubmitInLibrary);

    /**
     * 修改采购单
     *
     * @param reqHead
     * @param reqUpdateInLibrary @return
     */
    @FormUrlEncoded
    @POST("?")
    Observable<ApiBean<Integer>> updateInLibrary(
            @Field("reqhead") ReqHead reqHead,
            @Field("reqbody") ReqUpdateInLibrary reqUpdateInLibrary);


    /**
     * 获取仓库
     *
     * @param reqHead
     * @param reqListInLibraryBean
     * @return
     */
    @FormUrlEncoded
    @POST("?")
    Observable<ApiBean<LibraryBean2>> getLibraryList(
            @Field("reqhead") ReqHead reqHead,
            @Field("reqbody") ReqListInLibraryBean reqListInLibraryBean);

    /**
     * 删除仓库
     *
     * @param reqHead
     * @param reqDeleteInLibraryBean @return
     */
    @FormUrlEncoded
    @POST("?")
    Observable<ApiBean<Integer>> deleteInLibrary(
            @Field("reqhead") ReqHead reqHead,
            @Field("reqbody") ReqDeleteInLibraryBean reqDeleteInLibraryBean);

    /**
     * 获取采购单明细
     *
     * @param reqHead
     * @param reqQueryLibraryBean
     * @return
     */
    @FormUrlEncoded
    @POST("?")
    Observable<ApiBean<ArrayList<InLibraryDetailBean>>> getLibraryDetail(
            @Field("reqhead") ReqHead reqHead,
            @Field("reqbody") ReqQueryLibraryBean reqQueryLibraryBean);

    /**
     * 删除采购单明细
     *
     * @param reqHead
     * @param reqDeleteInLibraryDetailBean
     * @return
     */
    @FormUrlEncoded
    @POST("?")
    Observable<ApiBean<Integer>> deleteInLibraryDetail2(
            @Field("reqhead") ReqHead reqHead,
            @Field("reqbody") ReqDeleteInLibraryDetailBean reqDeleteInLibraryDetailBean);


    /**
     * 上传图片
     *
     * @param reqHead
     * @param reqImage @return
     */
    @FormUrlEncoded
    @POST("?")
    Observable<ApiBean<ArrayList<ImageBean>>> postImg(
            @Field("reqhead") ReqHead reqHead,
            @Field("reqbody") ReqImage reqImage);


    /**
     * @return
     */
    @POST("?_n=yulibao&_otype=list&_savetype=revenuequery")
    Observable<MoneyBean2> getMoneyData();

    /**
     * @param reqHead
     * @param reEarning @return
     */
    @FormUrlEncoded
    @POST("?")
    Observable<MoneyBean2> getEarning(
            @Field("reqhead") ReqHead reqHead,
            @Field("reqbody") ReEarning reEarning);

    /**
     * 发送验证码
     */
    @FormUrlEncoded
    @POST("?")
    Observable<ApiBean<String>> postCodeToService(
            @Field("reqhead") ReqHead reqHead,
            @Field("reqbody") ReqRegister reqRegister);

    /**
     * 注册
     *
     * @param reqHead
     * @param reqRegister3
     * @return
     */
    @FormUrlEncoded
    @POST("?")
    Observable<ApiBean<RegisterBean>> register(
            @Field("reqhead") ReqHead reqHead,
            @Field("reqbody") ReqRegister3 reqRegister3);

    /**
     * @param sDate
     * @param eDate
     * @return
     */
    @FormUrlEncoded
    @POST("?")
    Observable<BillBean1> getBillData(
            @Field("reqhead") ReqHead sDate,
            @Field("reqbody") ReqBill eDate);

    /**
     * 获取星级 下拉列表
     *
     * @param reqHead
     * @param reqQueryStar
     * @return
     */
    @FormUrlEncoded
    @POST("?")
    Observable<ApiBean<ArrayList<StarQueryBean>>> getStarQuery2(
            @Field("reqhead") ReqHead reqHead,
            @Field("reqbody") ReqQueryStar reqQueryStar);

    /**
     * 获取客户分类  下拉列表
     *
     * @param reqHead
     * @param reqQueryClientCategory
     * @return
     */
    @FormUrlEncoded
    @POST("?")
    Observable<ApiBean<ArrayList<ClientCategoryQueryBean>>> getClientCategoryQuery2(
            @Field("reqhead") ReqHead reqHead,
            @Field("reqbody") ReqQueryClientCategory reqQueryClientCategory);

    /**
     * 获取分类 下拉列表
     *
     * @param reqHead
     * @param reqQueryCategory
     * @return
     */
    @FormUrlEncoded
    @POST("?")
    Observable<ApiBean<ArrayList<CategoryQueryBean>>> getCategoryQuery2(
            @Field("reqhead") ReqHead reqHead,
            @Field("reqbody") ReqQueryCategory reqQueryCategory);

    /**
     * 添加购物车
     *
     * @param reqHead
     * @param reqAddShopCarBean
     * @return
     */
    @FormUrlEncoded
    @POST("?")
    Observable<ApiBean<GuidBean>> addShopCar(
            @Field("reqhead") ReqHead reqHead,
            @Field("reqbody") ReqAddShopCarBean reqAddShopCarBean);

    /**
     * 获取购物车列表
     *
     * @param reqHead
     * @param reqListShopCar
     * @return
     */
    @FormUrlEncoded
    @POST("?")
    Observable<ApiBean<ShopCarBean>> getShopCar(
            @Field("reqhead") ReqHead reqHead,
            @Field("reqbody") ReqListShopCar reqListShopCar);

    /**
     * 获取供应商 下拉列表
     *
     * @param reqHead
     * @param reqQueryVendorBean2
     * @return
     */
    @FormUrlEncoded
    @POST("?")
    Observable<ApiBean<ArrayList<CommonQueryBean>>> getVendorQuery2(
            @Field("reqhead") ReqHead reqHead,
            @Field("reqbody") ReqQueryVendorBean2 reqQueryVendorBean2);

    /**
     * 修改购物车
     *
     * @param reqHead
     * @param reqUpdateShopCar
     * @return
     */
    @FormUrlEncoded
    @POST("?")
    Observable<ApiBean<GuidBean>> updateShopCar(
            @Field("reqhead") ReqHead reqHead,
            @Field("reqbody") ReqUpdateShopCar reqUpdateShopCar);

    /**
     * 删除购物车
     *
     * @param reqHead
     * @param reqDeleteShopCarBean
     * @return
     */
    @FormUrlEncoded
    @POST("?")
    Observable<ApiBean<String>> deleteShopCar(
            @Field("reqhead") ReqHead reqHead,
            @Field("reqbody") ReqDeleteShopCarBean reqDeleteShopCarBean);

    /**
     * 获取采购单详情
     *
     * @param reqHead
     * @param reqListInLibraryDetailBean
     * @return
     */
    @FormUrlEncoded
    @POST("?")
    Observable<ApiBean<InLibraryDetailBean2>> getInLibraryListDetail(
            @Field("reqhead") ReqHead reqHead,
            @Field("reqbody") ReqListInLibraryBean2 reqListInLibraryDetailBean);

    /**
     * 获取地址列表
     *
     * @param reqHead
     * @param reqListAddress
     * @return
     */
    @FormUrlEncoded
    @POST("?")
    Observable<ApiBean<ArrayList<AddressBean>>> getAddress(
            @Field("reqhead") ReqHead reqHead,
            @Field("reqbody") ReqListAddress reqListAddress);

    /**
     * 删除地址
     *
     * @param reqHead
     * @param reqDeleteAddress
     * @return
     */
    @FormUrlEncoded
    @POST("?")
    Observable<ApiBean<Integer>> deleteAddress(
            @Field("reqhead") ReqHead reqHead,
            @Field("reqbody") ReqDeleteAddress reqDeleteAddress);

    @FormUrlEncoded
    @POST("?")
    Observable<ApiBean<ArrayList<ArticleQueryBean>>> getArtiQueryByVendorId(
            @Field("reqhead") ReqHead reqHead,
            @Field("reqbody") ReqListArticleBean2 reqListArticleBean2);

    /**
     * 获取订单
     *
     * @param reqHead
     * @param reqListOrder
     * @return
     */
    @FormUrlEncoded
    @POST("?")
    Observable<ApiBean<OrderBean>> getOrder(
            @Field("reqhead") ReqHead reqHead,
            @Field("reqbody") ReqListOrder reqListOrder);

    /**
     * 提交购物车  生成订单
     *
     * @param reqHead
     * @param reqSubmitShopCar
     * @return
     */
    @FormUrlEncoded
    @POST("?")
    Observable<ApiBean<GuidBean>> submitShopCar(
            @Field("reqhead") ReqHead reqHead,
            @Field("reqbody") ReqSubmitShopCar reqSubmitShopCar);

    /**
     * 添加地址
     *
     * @param reqHead
     * @param reqAddAddress
     * @return
     */
    @FormUrlEncoded
    @POST("?")
    Observable<ApiBean<AddressBean>> addAddress(
            @Field("reqhead") ReqHead reqHead,
            @Field("reqbody") ReqAddAddress reqAddAddress);

    /**
     * 修改地址
     *
     * @param reqHead
     * @param reqUpdateAddress
     * @return
     */
    @FormUrlEncoded
    @POST("?")
    Observable<ApiBean<AddressBean>> updateAddress(
            @Field("reqhead") ReqHead reqHead,
            @Field("reqbody") ReqUpdateAddress reqUpdateAddress);

    /**
     * 获取小工数据
     *
     * @param reqHead
     * @param reqListWorker
     * @return
     */
    @FormUrlEncoded
    @POST("?")
    Observable<ApiBean<ArrayList<WorkerBean>>> getWorker(
            @Field("reqhead") ReqHead reqHead,
            @Field("reqbody") ReqListWorker reqListWorker);

    /**
     * 修改订单
     *
     * @param reqHead
     * @param reqUpdateOrder
     * @return
     */
    @FormUrlEncoded
    @POST("?")
    Observable<ApiBean<Integer>> updateOrder(
            @Field("reqhead") ReqHead reqHead,
            @Field("reqbody") ReqUpdateOrder reqUpdateOrder);

    /**
     * 获取订单详情
     *
     * @param reqHead
     * @param reqQueryOrder
     * @return
     */
    @FormUrlEncoded
    @POST("?")
    Observable<ApiBean<ArrayList<OrderQueryBean>>> getOrderQuery(
            @Field("reqhead") ReqHead reqHead,
            @Field("reqbody") ReqQueryOrder reqQueryOrder);

    /**
     * 获取订单详情 2
     *
     * @param reqHead
     * @param reqQueryOrder2
     * @return
     */
    @FormUrlEncoded
    @POST("?")
    Observable<ApiBean<ArrayList<OrderQueryBean2>>> getOrderDetail2(
            @Field("reqhead") ReqHead reqHead,
            @Field("reqbody") ReqQueryOrder2 reqQueryOrder2);

    /**
     * 校验验证码
     *
     * @param reqHead
     * @param reqRegister2
     * @return
     */
    @FormUrlEncoded
    @POST("?")
    Observable<ApiBean<Integer>> postCodeToService2(
            @Field("reqhead") ReqHead reqHead,
            @Field("reqbody") ReqRegister2 reqRegister2);

    /**
     * 获取销售报表
     *
     * @param reqHead
     * @param reqSale
     * @return
     */
    @FormUrlEncoded
    @POST("?")
    Observable<ApiBean<SalesBean>> getSale(
            @Field("reqhead") ReqHead reqHead,
            @Field("reqbody") ReqSale reqSale);

    @FormUrlEncoded
    @POST("?")
    Observable<ApiBean<ReportBean>> getReport(
            @Field("reqhead") ReqHead reqHead,
            @Field("reqbody") ReqReport reqReport);

    @FormUrlEncoded
    @POST("?")
    Observable<ApiBean<Integer>> deleteOrder(
            @Field("reqhead") ReqHead reqHead,
            @Field("reqbody") ReqDeleteOrder reqDeleteOrder);

    @FormUrlEncoded
    @POST("?")
    Observable<ApiBean<String>> getErCode(
            @Field("reqhead") ReqHead reqHead,
            @Field("reqbody") ReqErCode reqErCode);

    @FormUrlEncoded
    @POST("?")
    Observable<HangQingBean> getHangQing(
            @Field("reqhead") ReqHead reqHead,
            @Field("reqbody") ReqHang reqHang);

    @FormUrlEncoded
    @POST("?")
    Observable<YHKBean> getYHKData(
            @Field("reqhead") ReqHead reqHead,
            @Field("reqbody") ReqYHKBean reqYHKBean);

    @FormUrlEncoded
    @POST("?")
    Observable<SHYSBean> getSHYS(
            @Field("reqhead") ReqHead reqHead,
            @Field("reqbody") ReqSHYSBean reqSHYSBean);

    @FormUrlEncoded
    @POST("?")
    Observable<TiXianBean2> getMoneyFromCard(
            @Field("reqhead") ReqHead reqHead,
            @Field("reqbody") ReqMoney reqMoney);

    @FormUrlEncoded
    @POST("?")
    Observable<ApiBean<String>> getArticle0Price(
            @Field("reqhead") ReqHead reqHead,
            @Field("reqbody") ReqQueryArticlePrice reqQueryArticlePrice);

    @FormUrlEncoded
    @POST("?")
    Observable<ApiBean<VersionUpdate>> updateVersion(
            @Field("reqhead") ReqHead reqHead,
            @Field("reqbody") ReqVersion reqVersion);

    @FormUrlEncoded
    @POST("?")
    Observable<ApiBean<String>> getBankData(
            @Field("reqhead") ReqHead reqHead,
            @Field("reqbody") ReqBank reqBank);

    @FormUrlEncoded
    @POST("?")
    Observable<ApiBean<String>> getErCode2(
            @Field("reqhead") ReqHead reqHead,
            @Field("reqbody") ReqRetrieve reqRetrieve);

    @FormUrlEncoded
    @POST("?")
    Observable<ApiBean<RegisterBean>> updatePassword(
            @Field("reqhead") ReqHead reqHead,
            @Field("reqbody") ReqUpdatePassword reqUpdatePassword);

    @FormUrlEncoded
    @POST("?")
    Observable<ALBBBean> getBankData2(
            @Field("reqhead") ReqHead reqHead,
            @Field("reqbody") ReqBank2 reqBank2);
}
